// ActionScript file

			
				import com.sodimac.util.commons.UploadPostHelper;
				import com.sodimac.util.commons.DataGridExport;
				import com.sodimac.v2s.view.components.ScreenFormat;
				import mx.binding.utils.ChangeWatcher;
				
				import mx.rpc.events.FaultEvent;
				import mx.rpc.events.ResultEvent;

				import mx.events.DataGridEvent;
				import mx.events.ItemClickEvent;
				import mx.events.AdvancedDataGridEvent;
				import mx.events.CollectionEvent;
				import mx.events.CloseEvent;
				 
				import mx.controls.AdvancedDataGrid;
				import mx.controls.TextInput;
				import mx.controls.DateField;
				import mx.controls.ButtonLabelPlacement;
				import mx.controls.Alert;   //se usa para el botón YES
				
				import mx.managers.PopUpManager;	
				import mx.collections.ArrayCollection;
				import mx.formatters.CurrencyFormatter;
				
				import com.sodimac.v2s.view.*;
				import com.sodimac.v2s.vo.InfoSfpVO;
				import com.sodimac.v2s.model.ComprasModelLocator;
				import com.sodimac.v2s.events.emitirOrdenDeCompraEvent;
				import com.sodimac.util.alerts.alert;
				import com.sodimac.util.commons.Resources;
				import com.sodimac.util.commons.EstadosBPM;
				import com.sodimac.util.commons.UtilString;
				

				/* datos de pantalla */        			
				[Bindable] public var infoSfpVo:InfoSfpVO = new InfoSfpVO();
				[Bindable] public var prodOCData:ArrayCollection = new ArrayCollection();
				[Bindable] public var existePedido: String;
				[Bindable] public var reporteURL: String;
				[Bindable] public var uploadDataURL: String;	
				[Bindable] public var downloadURL: String;			
				
				[Bindable] public var codPais: String;
				[Bindable] public var nombrePais: String;
				[Bindable] public var usuarioId: String;
				[Bindable] public var pedidoCorpId: Number;
				[Bindable] public var empresaId: String;
				[Bindable] public var paises: XMLList;
				
				private var totalCompra: Number = 0;
				private var cwArchivo:ChangeWatcher; 
				private var prodUpdated:ArrayCollection = new ArrayCollection();
				
				
				
				
				private function onInit():void
				{
					trace("____"+  this.name + " -->  onInit.");
					
					cwArchivo = ChangeWatcher.watch(ComprasModelLocator.getInstance(),'existePedido',onChange);
				}
				
				
				private function onCreationComplete():void
				{
					trace("____"+  this.name + " -->  onCreationComplete.");
					
					if (codPais == "CL") {
				    	imagePais.source =  Resources.banderaCL;
				    } else if (codPais == "CO")
				    {
				    	imagePais.source =  Resources.banderaCO;
				    } else if (codPais == "PE")
				    {
				    	imagePais.source =  Resources.banderaPE;
				    } else if (codPais == "AR")
				    {
				    	imagePais.source =  Resources.banderaAR;
				    }
				    
				    nombrePais = XML(paises).pais.(@codIata == codPais).@nombre;  
				}					
				  

	  			private function onChange(e:Event):void
				{
				    
				    trace(" ____"+  this.name + " -->  onChange.");
					//activar link
					if (existePedido == "1")  
					{
						btnEnviar.enabled = false;
					}	
			  				    
				    cwArchivo.unwatch();
				} 
				
				
				private function onCreationCompleteDGCorp():void
				{
					var i:int = 0;
					var col:AdvancedDataGridColumn;
					var cols:Array = dg_corp.columns;
					var anchoCols:Array = new Array(.07,.07,.11,.07,.07,.07,.07,.07,.08,.07,.08,.08,.08);
					
				 	trace("____"+  this.name + " -->  onCreationCompleteDGCorp.");
		    
					while (i < cols.length)
					{
						//para todos
						col= cols[i];
						col.editable = false;
						col.headerWordWrap = true;
						col.width = Math.round(dg_corp.width*anchoCols[i]);
						
						//format
						if ( (i==5) ||(i>=10) ) 
						{
							var sf:ClassFactory = new ClassFactory(ScreenFormat);
							sf.properties = {fieldName:  col.dataField}
							col.itemRenderer = sf; 
						}						
						
						i++;
					}
					
				}


          
				public function textFunction(col:AdvancedDataGridColumn):String
				{
					var txt:String = "";
					if (col.headerText =="Quantity")
					{
						txt="Total";
					}
					return txt;
				} 

				public function sumFunctionCorp(col:AdvancedDataGridColumn):String
				{
					var n:int =0; 
					var sum:Number = 0;
					if (prodOCData != null)
					{
						n = prodOCData.length;
						for (var i:int = 0; i < n; i++)
						{
							sum += Number(prodOCData[i][col.dataField]);
						}
					}
					return  numberFmt.format((Number(sum*100)/100));
				}


			


				//styleFunction="setColorStyle" (for ADG)
				public function setColorStyle(data:Object, col:AdvancedDataGridColumn):Object
				{
					if(data["quantity"] <= 0)
						return {color:0xFF0000};
					else    
						return {color:0x0000FF};

					return null;
				}


				//get products for OC
				private function getProductos():void
				{
					
					for (var i:int = 0;i < prodOCData.length; i++)
					{
						var obj:Object = new Object();
						obj.sku = String(prodOCData[i]["sku"]);
						obj.cantidad = Number(prodOCData[i]["quantity_new"]);
						obj.precio = Number(prodOCData[i]["unit_price"]);
						totalCompra += obj.cantidad ;
						
						prodUpdated.addItem(obj);
					}					
				}



				private function onClickBtnEmitirOC():void
				{
					alert.confirm("Está seguro de emitir la Orden de Compra?", EmitirOC);
					
				}



				private function EmitirOC(eventObj:CloseEvent):void
				{
					var savePedidoEvt:emitirOrdenDeCompraEvent = new emitirOrdenDeCompraEvent();
					var date:Date = new Date();
					
					if (eventObj.detail==Alert.YES) {
					
						getProductos();
					
			 			savePedidoEvt.idPedidoCorp = pedidoCorpId;
						savePedidoEvt.idProveedor = infoSfpVo.proveedorId;
						savePedidoEvt.idSucursal = infoSfpVo.sucursalId;
						savePedidoEvt.idEmpresa = empresaId;
						savePedidoEvt.idPais = codPais;
						
						//Fecha Envío
						if (infoSfpVo.diasFechaEnvio <= 0)
						{
							savePedidoEvt.fechaEnvio = date;
						} else 
						{
							var returnDate:Date = new Date(date.time);
							returnDate["date"]+= infoSfpVo.diasFechaEnvio;
							savePedidoEvt.fechaEnvio = returnDate;
						}
						
						//Fecha Emision
						if (infoSfpVo.diasFechaEmision <= 0)
						{
							savePedidoEvt.fechaEmision = date;
						} else 
						{
							var returnDate1:Date = new Date(date.time);
							returnDate1["date"]+= infoSfpVo.diasFechaEmision;
							savePedidoEvt.fechaEmision = returnDate1;
						}
						//Fecha Recepcion
						if (infoSfpVo.diasFechaRecepcion <= 0)
						{
							savePedidoEvt.fechaRecepcion = date;
						} else 
						{
							var returnDate2:Date = new Date(date.time);
							returnDate2["date"]+= infoSfpVo.diasFechaRecepcion;
							savePedidoEvt.fechaRecepcion = returnDate2;
						}
						
						savePedidoEvt.sumaCantidad = totalCompra;
						savePedidoEvt.arrProductos = prodUpdated;  //listado de prod. modificados
							
						savePedidoEvt.dispatch();
						btnEnviar.enabled = false;
					} 
		
				}


		        private function generarReporte(formato:String):void 
		        {
		            var sourceCorp:String =""; 
	  				 
	                //send data		            
		            if (dg_corp) {
		            	sourceCorp = DataGridExport.exportCSV(dg_corp, "Corporativos");
		            }		            
					
					//send data for report
					UploadPostHelper.uploadDataReport( 'ig12.txt', uploadDataURL, sourceCorp);
					
				    //call report					
//					var variables:URLVariables = new URLVariables();
//					variables.pNumeroSFP = infoSfpVo.numeroSFP;
//					variables.pPais = nombrePais;
//					variables.pEstado = infoSfpVo.estado; 
//					variables.pFecha = infoSfpVo.fecha_formato;
//					variables.pProveedor = infoSfpVo.proveedorNombre + '  ( ' + infoSfpVo.proveedorId + ' )';
//					variables.pVersion = infoSfpVo.version;
//					variables.pIntMerchant = infoSfpVo.merchantNombre; 
//					variables.formato = formato;
//					variables.fileName ='ig12.txt';			            
					
		            var request:URLRequest = new URLRequest();
					request.url = reporteURL + "?formato="+ formato +
								"&fileName=ig12.txt"+
								"&pNumeroSFP="+ infoSfpVo.numeroSFP +
								"&pPais="+ nombrePais +
								"&pEstado="+ infoSfpVo.estado + 
								"&pFecha="+ infoSfpVo.fecha_formato +
								"&pProveedor="+ infoSfpVo.proveedorNombre + " ( " + infoSfpVo.proveedorId + " )" +
								"&pVersion="+ infoSfpVo.version +
								"&pIntMerchant="+ infoSfpVo.merchantNombre;					
					request.method = URLRequestMethod.POST;
					//request.data = variables;
		            navigateToURL(request, '_blank');	
				    
	           }

            private function onClickDownloadPI():void {
                
                var urlRequest:URLRequest;
                var url:String;
                
                url = downloadURL + '?idPedidoCorp=' + pedidoCorpId + '&idPais=' + codPais;
                urlRequest = new URLRequest(url);
                navigateToURL(urlRequest, '_blank');
				
            }

